Smart space insertion

ABSTRACT

A system and method for inserting space is described. A user may designate content to be inserted into a document and have the system insert space to accommodate the new content. The system and method permit some content to overlie other content as may be intended by a user.

TECHNICAL FIELD

[0001] Aspects of the present intention relates to inserting space. Moreparticularly, aspects of the present invention relate to inserting spaceinto a document or electronic file so as to insert new content.

BACKGROUND

[0002] Typical computer systems, especially computer systems usinggraphical user interface (GUI) systems, such as Microsoft WINDOWS, areoptimized for accepting user input from one or more discrete inputdevices such as a keyboard for entering text, and a pointing device suchas a mouse with one or more buttons for driving the user interface.

[0003] Some computing systems have expanded the input and interactionsystems available to a user by allowing the use of a stylus to inputinformation into the systems. The stylus may take the place of both thekeyboard (for data entry) as well as the mouse (for control). Somecomputing systems receive handwritten electronic information orelectronic ink and immediately attempt to convert the electronic inkinto text. Other systems permit the electronic ink to remain in thehandwritten form.

[0004] Conventional word processors provide a simple process forinserting space within a document. For example, a user may repeatedlyhit the return key to open up more space within a document. If a userwants to drag and drop information into the word processing document,the user may drop in the content into the document can be readilyassured that the content within the document will be moved toaccommodate the new content.

[0005] However, re-flowing text based on the insertion of new content isnot always what the user desires. For example in some cases, a user maybe inserting a new image into a document. The user may intend that thenew image overlying the existing content. However using the commonapproach of always inserting new space into a document results inadditional work for the user to constantly readjust how new content willbe treated upon insertion. Accordingly, a better approach is needed tohandle the insertion of new space and/or content.

Summary

[0006] Aspects of the present invention address one or more of theissues set forth above, thereby providing an intelligent process forinserting and handling content. In some aspects, the system examines thecontent to be inserted and determines if it requires existing content tobe moved. In other aspects of the present invention, the system examinesthe content if any at the insertion location and determines if the newcontent should overlie the existing content or the existing contentshould be moved to make space for the inclusion of the new content. Inyet further aspects of these two examinations of the content may becombined so as to provide any better usability of inserting space withina document. Further, other aspects of the present invention relate todetermining the location of an insertion point so as to better providingspace where a user expects the space to be placed.

[0007] These and other aspects are addressed in relation to the Figuresand related description.

BRIEF DESCRIPTION OF DRAWINGS

[0008] The foregoing summary of aspects of the invention, as well as thefollowing detailed description of various embodiments, is betterunderstood when read in conjunction with the accompanying drawings,which are included by way of example, and not by way of limitation withregard to the claimed invention.

[0009]FIG. 1 shows a general-purpose computer supporting one or moreaspects of the present invention.

[0010]FIG. 2 shows a display for a stylus-based input system accordingto aspects of the present invention.

[0011]FIG. 3 shows new content being added to a page in accordance withaspects of the present invention.

[0012]FIG. 4 shows new content being added to a page in accordance withaspects of the present invention.

[0013]FIG. 5 shows new content being added to a list in accordance withembodiments of the present invention.

[0014]FIGS. 6 and 7 show new content being added to a list in accordancewith embodiments of the present invention.

[0015]FIG. 7 shows new content being added below current content inaccordance with embodiments of the present invention.

[0016]FIGS. 8A and 8B show locations for determining from where newcontent is to be evaluated in accordance with embodiments of the presentinvention.

[0017]FIGS. 9A and 9B show processes for determining how new content isto be handled in relation to existing content in accordance withembodiments of the present invention.

[0018]FIG. 10 shows various techniques of handling the new and oldcontent in accordance with embodiments of the present invention.

[0019]FIGS. 11 and 12 show various processes of handling space insertionin accordance with embodiments of the present invention.

DETAILED DESCRIPTION OF DRAWINGS

[0020] Aspects of the present invention relate to inserting space intodocuments. The term “document” is used generally herein and includesword processing documents, spreadsheets, images files, presentationfiles, and the like. The systems and methods described herein relate tousing at least one of the present location of an insertion point orprevious focus or location of a document on a display to determine whereto insert content. Aspects of the present invention may be used with astandard personal computer having a mouse and keyboard. Also, aspects ofthe present invention may be used with a stylus-based computing system(which may or may not have a mouse (or trackball or touch pad) and akeyboard).

[0021] Aspects of the present invention relate to the ability to insertwithin a document. Further aspects provide the user at the ability toinsert among the existing content so as to provide a location in adocument for accepting new content. Further, heuristics may be providedthat help determine if one desires to insert new content on top ofexisting content.

[0022] Aspects of the present application may be applied to standardcomputing systems. Further, additional benefit may be achieved instylus-based computing systems by using aspects of the presentinvention. For example, if a user desires to input drawing informationinto a document, the system may examine the content to be inserted(drawing information) and content at the location receiving the newcontent. If the content at the location is text and the like, the systemmay insert space so as to permit non-overlap of the existing contentwith the new content. However, if the existing content is a drawing aswell, the user may likely expect to add information to the existingdrawing, rather than insert space above it. Accordingly, in thisinstance, the system may permit the new content to overlie the existingcontent.

[0023] To assist the user, the following is arranged with the followingsubheadings: characteristics of ink; terms; general-purpose computer;space insertion; and processes for inserting space.

[0024] Characteristics of Ink

[0025] Electronic ink (or ink) refers to a sequence of strokes, whereeach stroke is comprised of a sequence of points. The points may berepresented using a variety of known techniques including Cartesiancoordinates (X, Y), polar coordinates (r, Θ), and other techniques asknown in the art.

[0026] As known to users who use ink pens, physical ink (the kind laiddown on paper using a pen with an ink reservoir) may convey moreinformation than a series of coordinates connected by line segments. Forexample, physical ink can reflect pen pressure (by the thickness of theink), pen angle (by the shape of the line or curve segments and thebehavior of the ink around discreet points), and the speed of the nib ofthe pen (by the straightness, line width, and line width changes overthe course of a line or curve).

[0027] To provide the look and feel of physical ink, electronic ink mayadditionally store ink strokes and properties associated with the inkstrokes to more fully render ink. Ink may be stored as a series ofstrokes and a series of properties. In other situations, ink may bestored with a complex series of properties in which the properties haveproperties of their own. Properties of the ink may include, for example,color, width, pressure between the stylus and tablet, and angle betweenthe stylus and tablet, and pen shape and the like. While theseproperties may suffice for many applications, electronic ink isextensible to include custom properties (and other data) generated byadditional applications. All strokes and values may be stored directlywith excess information. However, alternative versions of ink reflectconsiderations that eliminate excess information when possible orpracticable so as to minimize the physical size of the stored ink.

[0028] The properties used to define an ink object and the strokeswithin the ink object may have varying scope. For example, someproperties may apply to all ink strokes in an ink object (e.g., theshape of a pen tip). Other properties may relate only to a specificpoint (e.g., a point at which a stylus starts a stroke). Others mayrelate to specific strokes while others may relate to packets ofinformation as reported by hardware (e.g., coordinates, pressure, angleof pen, the intervals of time between reported coordinates, and thelike). In short, properties have different levels of scope.

[0029] To efficiently store properties, some may be explicitly specifiedwhile others may be implicit. In a simple example, all properties may bedefault properties and not specified in an ink object. So, the inkobject may only have X and Y coordinate values. In another example, theink object may have properties that affect the entire ink object but theproperties are specified in the ink object. In a third example, somestrokes may have a first set of properties and others have a second setof properties. The properties may be defined initially at the beginningof the ink object and the individual strokes may reference thepreviously defined properties as needed. Using this approach of definingproperties then later referencing the properties promotes a greaterefficiency in storing properties. This becomes more apparent as an inkobject becomes larger as the number of properties increases and thenumber of ink strokes referencing the properties increases.

[0030] Terms

[0031] Ink—A sequence or set of strokes with properties. A sequence ofstrokes may include strokes in an ordered form. The sequence may beordered by the time captured or by where the strokes appear on a page.Other orders are possible. A set of strokes may includes sequences ofstrokes or unordered strokes or any combination thereof

[0032] Ink object—A data structure storing ink with or withoutproperties.

[0033] Stroke—A sequence or set of captured points. For example, whenrendered, the sequence of points may be connected with lines.Alternatively, the stroke may be represented as a point and a vector inthe direction of the next point. In short, a stroke is intended toencompass any representation of points or segments relating to ink,irrespective of the underlying representation of points and/or whatconnects the points.

[0034] Point—Information defining a location in space. For example, thepoints may be defined relative to a capturing space (for example, pointson a digitizer), a virtual ink space (the coordinates in a space intowhich captured ink is placed), and/or display space (the points orpixels of a display device).

[0035] General-Purpose Computer

[0036]FIG. 1 illustrates a schematic diagram of an illustrativeconventional general-purpose digital computing environment that can beused to implement various aspects of the present invention. In FIG. 1, acomputer 100 includes a processing unit 110, a system memory 120, and asystem bus 130 that couples various system components including thesystem memory to the processing unit 110. The system bus 130 may be anyof several types of bus structures including a memory bus or memorycontroller, a peripheral bus, and a local bus using any of a variety ofbus architectures. The system memory 120 includes read only memory (ROM)140 and random access memory (RAM) 150.

[0037] A basic input/output system 160 (BIOS), containing the basicroutines that help to transfer information between elements within thecomputer 100, such as during start-up, is stored in the ROM 140. Thecomputer 100 also includes a hard disk drive 170 for reading from andwriting to a hard disk (not shown), a magnetic disk drive 180 forreading from or writing to a removable magnetic disk 190, and an opticaldisk drive 191 for reading from or writing to a removable optical disk192 such as a CD ROM or other optical media. The hard disk drive 170,magnetic disk drive 180, and optical disk drive 191 are connected to thesystem bus 130 by a hard disk drive interface 192, a magnetic disk driveinterface 193, and an optical disk drive interface 194, respectively.The drives and their associated computer-readable media providenonvolatile storage of computer readable instructions, data structures,program modules and other data for the personal computer 100. It will beappreciated by those skilled in the art that other types of computerreadable media that can store data that is accessible by a computer,such as magnetic cassettes, flash memory cards, digital video disks,Bernoulli cartridges, random access memories (RAMs), read only memories(ROMs), and the like, may also be used in the example operatingenvironment.

[0038] A number of program modules can be stored on the hard disk drive170, magnetic disk 190, optical disk 192, ROM 140 or RAM 150, includingan operating system 195, one or more application programs 196, otherprogram modules 197, and program data 198. A user can enter commands andinformation into the computer 100 through input devices such as akeyboard 101 and pointing device 102. Other input devices (not shown)may include a microphone, joystick, game pad, satellite dish, scanner orthe like. These and other input devices are often connected to theprocessing unit 110 through a serial port interface 106 that is coupledto the system bus, but may be connected by other interfaces, such as aparallel port, game port or a universal serial bus (USB). Further still,these devices may be coupled directly to the system bus 130 via anappropriate interface (not shown). A monitor 107 or other type ofdisplay device is also connected to the system bus 130 via an interface,such as a video adapter 108. In addition to the monitor, personalcomputers typically include other peripheral output devices (not shown),such as speakers and printers. In a one embodiment, a pen digitizer 165and accompanying pen or stylus 166 are provided in order to digitallycapture freehand input. Although a direct connection between the pendigitizer 165 and the serial port interface 106 is shown, in practice,the pen digitizer 165 may be coupled to the processing unit 110directly, parallel port or other interface and the system bus 130 asknown in the art. Furthermore, although the digitizer 165 is shown apartfrom the monitor 107, the usable input area of the digitizer 165 may beco-extensive with the display area of the monitor 107. Further still,the digitizer 165 may be integrated in the monitor 107, or may exist asa separate device overlaying or otherwise appended to the monitor 107.

[0039] The computer 100 can operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 109. The remote computer 109 can be a server, a router, anetwork PC, a peer device or other common network node, and typicallyincludes many or all of the elements described above relative to thecomputer 100, although only a memory storage device 111 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 112 and a wide area network (WAN)113. Such networking environments are commonplace in offices,enterprise-wide computer networks, intranets and the Internet.

[0040] When used in a LAN networking environment, the computer 100 isconnected to the local network 112 through a network interface oradapter 114. When used in a WAN networking environment, the personalcomputer 100 typically includes a modem 115 or other means forestablishing a communications over the wide area network 113, such asthe Internet. The modem 115, which may be internal or external, isconnected to the system bus 130 via the serial port interface 106. In anetworked environment, program modules depicted relative to the personalcomputer 100, or portions thereof, may be stored in the remote memorystorage device.

[0041] It will be appreciated that the network connections shown areillustrative and other techniques for establishing a communications linkbetween the computers can be used. The existence of any of variouswell-known protocols such as TCP/IP, Ethernet, FTP, HTTP and the like ispresumed, and the system can be operated in a client-serverconfiguration to permit a user to retrieve web pages from a web-basedserver. Any of various conventional web browsers can be used to displayand manipulate data on web pages.

[0042]FIG. 2 illustrates an illustrative tablet PC 201 that can be usedin accordance with various aspects of the present invention. Any or allof the features, subsystems, and functions in the system of FIG. 1 canbe included in the computer of FIG. 2. Tablet PC 201 includes a largedisplay surface 202, e.g., a digitizing flat panel display, preferably,a liquid crystal display (LCD) screen, on which a plurality of windows203 is displayed. Using stylus 204, a user can select, highlight, and/orwrite on the digitizing display surface 202. Examples of suitabledigitizing display surfaces 202 include electromagnetic pen digitizers,such as Mutoh or Wacom pen digitizers. Other types of pen digitizers,e.g., optical digitizers, may also be used. Tablet PC 201 interpretsgestures made using stylus 204 in order to manipulate data, enter text,create drawings, and/or execute conventional computer application taskssuch as spreadsheets, word processing programs, and the like.

[0043] The stylus 204 may be equipped with one or more buttons or otherfeatures to augment its selection capabilities. In one embodiment, thestylus 204 could be implemented as a “pencil” or “pen”, in which one endconstitutes a writing portion and the other end constitutes an “eraser”end, and which, when moved across the display, indicates portions of thedisplay are to be erased. Other types of input devices, such as a mouse,trackball, or the like could be used. Additionally, a user's own fingercould be the stylus 204 and used for selecting or indicating portions ofthe displayed image on a touch-sensitive or proximity-sensitive display.Consequently, the term “user input device”, as used herein, is intendedto have a broad definition and encompasses many variations on well-knowninput devices such as stylus 204. Region 205 shows a feedback region orcontact region permitting the user to determine where the stylus 204 ascontacted the display surface 202.

[0044] In various embodiments, the system provides an ink platform as aset of COM (component object model) services that an application can useto capture, manipulate, and store ink. One service enables anapplication to read and write ink using the disclosed representations ofink. The ink platform may also include a mark-up language including alanguage like the extensible markup language (XML). Further, the systemmay use DCOM as another implementation. Yet further implementations maybe used including the Win32 programming model and the .Net programmingmodel from Microsoft Corporation.

[0045] Space Insertion

[0046]FIG. 3 shows an example of how page 301 may receive new content305. Page 301 includes existing content 302,303,304 and blank space 306.Depending on an insertion location on page 301, the various existingcontent 302-304 and blank space 306 may respond differently to theinsertion of new content 305.

[0047]FIG. 4 shows an example of how content may be added to an existingpage of content. Page 401 includes text. Drawing 402 is to be added atlocation 403. As drawing 402 would block the text on page 401 and thatis not likely the user's content, the text on page 401 would have spaceinserted into it at location 403 to accept drawing 402. Later, drawing406 may be inserted into drawing 402. As drawing 406 would likelyaugment the information in drawing 402, space is not inserted intodrawing 402 to accommodate new drawing 406. Rather drawing 406 mayoverlie drawing 402. Next, text 404 may be intended to be inserted atlocation 405. As it is likely that text 404 is to be read in conjunctionwith the text on page 401, but not occlude the text on page 401, spacemay be inserted at location 405 to accept that text 404

[0048]FIG. 5 shows an example of inserting an item into a list or atable. List 501 is shown as today's shopping list. Shopping list 501includes content “eggs”, “bread”, and “water.” Content 502 includes along term shopping list that includes, among other items, “milk” 503.Here, the user has selected milk 503 and attempted to insert it intoshopping list 501. The resultant list 504 is shown as today's shoppinglist including eggs, milk, bread and water. Here, space was madeavailable between the eggs entry and the bread entry to accommodate milk503. The example of FIG. 5 shows the invention applied to text on text.

[0049]FIG. 6 shows an example of the shopping list using handwrittenink. Shopping list 601 includes entries milk 603 and bread 604. A useris attempting to insert an entry for eggs 602 between milk 603 and bread604. Because the user's insertion location is somewhere between milk 603and bread 604, a determination needs to be made of which content of page603 needs to be moved to accommodate eggs 602.

[0050] In this example the bounding boxes surrounding each entry areused. These bounding boxes help determine one ink is selected or the maypotentially overlap another ink. Of course, bounding boxes may be usedfor other non-ink applications as well. In this regard, the inventionmay be applied to other non-ink applications. Other processes fordetermining the overlap may be used as well, in conjunction with or inplace of bounding boxes. For example, a system may rely on the actualcontent within the boxes to determine overlap. Further non-rectilinearshapes may also be used to determine intersection.

[0051] The system may determine that eggs 602 overlap's both milk 603and bread 604. The system may deal with this overlap by determiningwhich item, 603 or 604, is closer to the top of the page. Further, thesystem may determine if eggs 602 overlap's milk 603 by a predeterminedamount. In this example of the system determines if eggs 602 overlapsmilk 603 by a percentage overlap 605. If the top of eggs 602 is withinthe percentage overlap 605, then the system may determine that the userin tens that eggs 602 be placed higher than milk 603. In that case, milk603 and bread 604 may be moved down to provide space for receiving eggs602.

[0052] In one example, the space inserted may be determined by the sizeof a bounding box or other shape surrounding the content to be inserted.In other examples, the amount of space to be inserted may be determinedby the spacing in a list or indent in an outline. Further, movement ofcontent within an existing document may be both up and down and/or maybeleft and right as well.

[0053]FIG. 7 shows an alternative representation of the shopping list ofFIG. 6. Here, shopping list 701 includes eggs 702 and bread 704 and isabout to receive milk 703. Eggs 702 is not confined to a single tabularentry within the list of 701. Rather the letters “g” descend below adividing line between the eggs entry 702 and bread entry 704. Because ofthis overlap, the system may need to determine if the user's intent. Inthis example, the user may place milk 703 completely within a tabularregion for entry into shopping list 701, where only the bread entry 704should be moved. However because of the decenders from eggs 702, theentry for milk 703 may overlap eggs 702 by the percentage overlap 605,thereby placing milk 703 above eggs 702, when the user's intent is toplace it below eggs 702. Accordingly, the system may have a hierarchicalrelationship between placement within a structured format of a list asopposed to percentage overlap in terms of determining which contentshould be moved.

[0054]FIGS. 8A and 8B show various ways of designating portions of adocument for insertion. In FIG. 8A, content 801 includes a centerline802. This centerline 802 may be used to determine in which region is theuser intends to place content 801. In the FIG. 8b, content 803 includesa location 805 having been designated by stylus 804. This location 805may be a drag and drop point where a user has picked up content 803 andhas dropped it into a document. It is appreciated that any location 805may be used for determining overlap between content to be inserted andcontent existing on a page. Further any line (horizontal or vertical orany other direction) may be used to determine if content is to beinserted at one location or another.

[0055]FIGS. 9A and 9B show various aspects of new content and existingcontent that may be used to determine if space should be inserted andwhere space should be inserted. In FIG. 9A, existing content 901 and newcontent 902 overlap by an overlapping portion 903. This overlappingportion 903 may be used to determine if content 902 is intended to beplaced higher than content 901 or not. As an example, overlappingportion 903 may be set to 40% as a threshold. If the overlap exceeds 40%(measured from the bottom of the existing content and the top of the newcontent) (or is less than 60% measured from the top of the existingcontent and the top of the new content), then the system may determineto move the existing content 901 down and insert space above it for newcontent 902. Further, these values of 40% and 60% may be adjusted toaccommodate different preferences, screen resolutions, mouse movementresolutions, stylus movement resolutions, and the like.

[0056]FIG. 9B shows the use of a centerline 908 in which to determinewhere in a table having lines is new content to be inserted. Here, newcontent 904 includes centerline 908 placed between two lines of a table905 and 906. Based on centerline 908 being between lines 905 and 906,the system may determine that content 904 is to be placed between thesetwo lines. However, new content 904 also includes a location 907 thatwas designated by a stylus (for example, stylus 804). This new locationmay also help the system determine where content 904 is to be inserted.For example, the fact that location 907 is above line 905 may suggestthat content 904 is to be inserted above line 905. This determinationmay or may not be based on the size of content 904, the distance betweenpoint 907 and line 905, and/or some combination of these values.

[0057]FIG. 10 shows a relationship between content to be inserted andunderlying content and how these content interact. Content to beinserted may include drawings/pictures ink, text, text boxes,organizational charts, tables, and other content. Existing content mayinclude these same contents as well as no content (see, for example,space 306 of FIG. 3). The movement insertion of space and orrepositioning of underlying content in FIG. 10 is adjustable. The valuesgiven are for illustrative purposes only. They may be changed based onuser preferences or developmental tools. For example, a general approachto defining movement or non-movement of content may be as follows. Ifthere is no content on a page receiving content, there is no movement(or possibly expansion of the page) of the page receiving the content.For any content being inserted on top of a drawing or picture, thecontent is made to overly on or offset from the drawing or picture. Ifthe underlying content is text or a text box or a table or writing ink,space is inserted to provide room for the new content. If the content ona page is an organizational chart, space is inserted except when the newcontent is an org chart (where the original org chart may be modified orreposition to accept the new org chart) and when the new content isdrawing ink (where drawing ink may be applied on top of the org chart).Finally, where the existing content on a page is drawing ink, space maybe inserted for all types of new content except when the new content isa drawing or is. drawing ink. Alternatively, no movement may be appliedin that the action of drawing ink may be made to act like adrawing/picture described and shown higher in the table of FIG. 10. Ofcourse, these actions are illustrative: they may be modified if adeveloper or user desires an alternate set of actions for content.

[0058] A parser may be used to distinguish between drawing ink andwriting ink, where the drawing ink is considered to be a drawing and thewriting ink is considered to be akin to text or a text box. For example,the parser may look for shapes or may attempt to apply recognition tothe ink. Other parsing techniques may be used. Alternatively, a user mayidentify to the system which type of ink a current ink is (for example,a user may tell a system that the following ink is a drawing orrepresents text).

[0059] Processes for Inserting Space

[0060]FIG. 11 shows a process for inserting space. In step 1101, thesystem receives an instruction to insert content. In step 1102, thesystem determines the type of content to be inserted. In step 1103, thelocation of insertion is determined. In step 1104, the system examinesthe content (if any) at the insertion location. In step 1105, space isinserted. Alternatively, based on the determination of steps 1102 and1104, the system may not insert space at step 1105. In step 1106,content is inserted.

[0061]FIG. 12 shows an alternative process for determining whethercontent should be moved. In step 1201, the system receives aninstruction to insert content. In step 1202, the system determines aninsertion location for the content. In step 1203, the system determinesthe type of content to be inserted. In step 1204, the system determinesthe type of content (if any) at the insertion location. It isappreciated that steps 1203 and 1204 may be performed concurrently orsequentially in any order. Next, in step 1205, the system determines ifthe content at the insertion location should be moved. For example, thesystem may check with a table in as set forth in FIG. 10, to determineif content should be moved in relation to new content. If yes from step1205, the system moves content at the insertion location in step 1206.If no, the system adds the new content at the insertion location in step1207.

[0062] Although the invention has been defined using the appendedclaims, these claims are illustrative in that the invention is intendedto include the elements and steps described herein in any combination orsub combination. Accordingly, there are any number of alternativecombinations for defining the invention, which incorporate one or moreelements from the specification, including the description, claims, anddrawings, in various combinations or sub combinations. It will beapparent to those skilled in the relevant technology, in light of thepresent specification, that alternate combinations of aspects of theinvention, either alone or in combination with one or more elements orsteps defined herein, may be utilized as modifications or alterations ofthe invention or as part of the invention. It may be intended that thewritten description of the invention contained herein covers all suchmodifications and alterations.

1. A process for inserting space into a document at an insertionlocation comprising the steps of: receiving an instruction to insert newcontent; determining a type of content to be inserted; determining atype of content at said insertion location; and inserting said newcontent.
 2. The process according to claim 1, wherein said insertingstep in includes inserting space to receive said new content.
 3. Theprocess according to claim 2, wherein said inserting step furtherincludes moving existing content at said insertion location to createsaid space.
 4. The process according to claim 1, wherein said insertingstep includes overlying said new content over existing content.
 5. Theprocess according to claim 1, wherein said insertion location isdetermined by an overlap between said new content and existing content.6. The process according to claim 1, wherein said insertion location isdetermined by a drag and drop point within said new content.
 7. Theprocess according to claim 1, wherein said insertion location isdetermined by the position of said new content in relation to astructure of a document or item within said document.
 8. The processaccording to claim 1, wherein said determining steps are performedsequentially.
 9. The process according to claim 1, wherein saiddetermining steps are performed concurrently.
 10. A system for insertingspace within a document at an insertion location comprising: an inputfor receiving an instruction to insert new content within a document; aprocessor for determining a type of said new content, for determining atype of content at said insertion location, and inserting said newcontent into said document; and an output for outputting said documentwith said new content.
 11. The system according to claim 10, whereinsaid processor determines if existing content should be moved toaccommodate said new content and wherein said processor moves saidexisting content to create space for said new content.
 12. Acomputer-readable medium having instructions stored thereon, saidinstructions for inserting space into a document at an insertionlocation, said instructions comprising the steps of: receiving aninstruction to insert new content; determining a type of content to beinserted; determining a type of content at said insertion location; andinserting said new content;
 13. The computer-readable medium accordingto claim 12, wherein said inserting step in includes inserting space toreceive said new content.
 14. The computer-readable medium according toclaim 13, wherein said inserting step further includes moving existingcontent at said insertion location to create said space.
 15. Thecomputer-readable medium according to claim 12, wherein said insertingstep includes overlying said new content over existing content.
 16. Thecomputer-readable medium according to claim 12, wherein said insertionlocation is determined by an overlap between said new content andexisting content.
 17. The computer-readable medium according to claim12, wherein said insertion location is determined by a drag and droppoint within said new content.
 18. The computer-readable mediumaccording to claim 12, wherein said insertion location is determined bythe position of said new content in relation to a structure of adocument or item within said document.
 19. The computer-readable mediumaccording to claim 12, wherein said determining steps are performedsequentially.
 20. The computer-readable medium according to claim 12,wherein said determining steps are performed concurrently.